home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / sml_nj / 93src.lha / src / env / env.sig < prev    next >
Encoding:
Text File  |  1993-01-27  |  1.2 KB  |  41 lines

  1. (* Copyright 1989 by AT&T Bell Laboratories *)
  2. (* env.sig *)
  3.  
  4. signature ENV =
  5. sig
  6.   structure Symbol : SYMBOL
  7.   structure FastSymbol :
  8.     sig
  9.       type raw_symbol
  10.       type symbol
  11.       val rawSymbol: int * string -> raw_symbol
  12.       val sameSpaceSymbol : symbol -> raw_symbol -> symbol
  13.  
  14.       val varSymbol: raw_symbol -> symbol
  15.       val tycSymbol: raw_symbol -> symbol
  16.       val sigSymbol: raw_symbol -> symbol
  17.       val strSymbol: raw_symbol -> symbol
  18.       val fctSymbol: raw_symbol -> symbol
  19.       val fixSymbol: raw_symbol -> symbol
  20.       val labSymbol: raw_symbol -> symbol
  21.       val tyvSymbol: raw_symbol -> symbol
  22.       val fsigSymbol: raw_symbol -> symbol
  23.       val var'n'fix : raw_symbol -> symbol * symbol
  24.     end
  25.   type 'b env
  26.   exception Unbound  
  27.   exception SpecialEnv
  28.   val empty: 'b env
  29.   val look: 'b env * Symbol.symbol -> 'b
  30.   val bind: Symbol.symbol * 'b * 'b env -> 'b env
  31.   val open': 'b env * ('b -> 'b) * 'b env -> 'b env
  32.   val special: (Symbol.symbol -> 'b) * 'b env -> 'b env
  33.  
  34.   (* atop(e1,e2): place e1 on top of e2 *)
  35.  
  36.   val atop: 'b env * 'b env -> 'b env
  37.   val consolidate: '1b env -> '1b env
  38.   val app: (Symbol.symbol * 'b -> unit) -> 'b env -> unit
  39.   val map: ('1b -> '1b) -> '1b env -> '1b env
  40. end
  41.